Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🦾 Не наступайте на чужие грабли
В мире C# даже опытные разработчики регулярно совершают на ошибки, которые на первый взгляд безобидны, но влекут за собой трудноловимые баги, утечки ресурсов и просадки производительности.
Наткнулись на видео, в котором разбираются 10 самых распостранённых ошибок — от неоптимизированной конкатенации до страшных циклов.
➡️ Смотреть видео
🐸 Библиотека шарписта #буст
В мире C# даже опытные разработчики регулярно совершают на ошибки, которые на первый взгляд безобидны, но влекут за собой трудноловимые баги, утечки ресурсов и просадки производительности.
Наткнулись на видео, в котором разбираются 10 самых распостранённых ошибок — от неоптимизированной конкатенации до страшных циклов.
Please open Telegram to view this post
VIEW IN TELEGRAM
🕖 Почему база данных тормозит ваше приложение и как это исправить
Когда приложение начинает «тормозить», несмотря на тщательно оптимизированный код и обновлённые библиотеки, причина часто кроется не в логике приложения, а в базе данных.
Запросы к БД могут занимать секунды, превращая миллисекундные операции в узкое место производительности.
Если не решить эту проблему, API будет медленным, пользователи — недовольными, а система — нестабильной при высокой нагрузке.
➡️ Узнать как решить проблемы с БД
🐸 Библиотека шарписта #буст
Когда приложение начинает «тормозить», несмотря на тщательно оптимизированный код и обновлённые библиотеки, причина часто кроется не в логике приложения, а в базе данных.
Запросы к БД могут занимать секунды, превращая миллисекундные операции в узкое место производительности.
Если не решить эту проблему, API будет медленным, пользователи — недовольными, а система — нестабильной при высокой нагрузке.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Недавно в сабреддите C# разгорелась дискуссия вокруг предупреждения компилятора CA1859: «Используйте конкретные типы, когда это возможно, для улучшения производительности». Это подняло вечный вопрос: стоит ли жертвовать абстракцией ради скорости?
⚙️ Аргументы за использование конкретных типов:
— Конкретные типы позволяют избежать накладных расходов, связанных с виртуальными вызовами и аллокациями.
— Внутренние методы, использующие конкретные типы, могут быть проще и эффективнее, так как они не требуют обработки различных реализаций интерфейсов.
🧩 Аргументы в пользу абстракций:
— Использование интерфейсов, таких как
IEnumerable
или IDictionary
, позволяет методам работать с различными реализациями, повышая переиспользуемость кода.— Абстракции облегчают написание модульных тестов, позволяя подменять зависимости мок-объектами.
💬 А что выбирает вы? Гибкость или быструю работу? Пишите свои мысли в комментарии👇
Please open Telegram to view this post
VIEW IN TELEGRAM
📰 Еженедельный дайджест
Собрали для вас материалы, которые вы могли пропустить.
— Почему переход с C# на F# может быть выгоден для бизнеса
Компания Ada Beat делится опытом перехода с C# на F#, отмечая, что это приводит к упрощению кода, снижению затрат на поддержку и ускорению вывода продуктов на рынок.
— Extension members в C# 14
В блоге разработчиков .NET рассказали о новой фиче — extension members, расширяющей привычные extension methods. Теперь разработчики могут добавлять к существующим типам не только методы, но и свойства — как экземплярные, так и статические.
— Почему стартап Tracebit выбрал C#
В блоге Microsoft CTO стартапа Tracebit, Сэм Кокс, делится причинами выбора C# для создания B2B SaaS-продукта в области безопасности.
— Новый выпуск подкаста .NET Rocks
Ведущие обсудили извечный вопрос: как найти баланс между архитектурным дизайном и непосредственным написанием кода.
— 7 архитектурных паттернов, которые должен знать каждый программист
— Почему база данных тормозит ваше приложение и как это исправить
🐸 Библиотека шарписта #свежак
Собрали для вас материалы, которые вы могли пропустить.
— Почему переход с C# на F# может быть выгоден для бизнеса
Компания Ada Beat делится опытом перехода с C# на F#, отмечая, что это приводит к упрощению кода, снижению затрат на поддержку и ускорению вывода продуктов на рынок.
— Extension members в C# 14
В блоге разработчиков .NET рассказали о новой фиче — extension members, расширяющей привычные extension methods. Теперь разработчики могут добавлять к существующим типам не только методы, но и свойства — как экземплярные, так и статические.
— Почему стартап Tracebit выбрал C#
В блоге Microsoft CTO стартапа Tracebit, Сэм Кокс, делится причинами выбора C# для создания B2B SaaS-продукта в области безопасности.
— Новый выпуск подкаста .NET Rocks
Ведущие обсудили извечный вопрос: как найти баланс между архитектурным дизайном и непосредственным написанием кода.
— 7 архитектурных паттернов, которые должен знать каждый программист
— Почему база данных тормозит ваше приложение и как это исправить
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Библиотека задач по C# | тесты, код, задания
В чем разница между Convert.ToString() и ToString()?
👾 — Convert.ToString() обрабатывает значения null, а ToString() — нет
👍 — ToString() выводит данные в соответствии с предоставленным форматом
🥰 — Convert.ToString() обрабатывает только значения null
⚡️ — ToString() обрабатывает значения null, а Convert.ToString() — нет
🐸 Библиотека задач по C#
👾 — Convert.ToString() обрабатывает значения null, а ToString() — нет
👍 — ToString() выводит данные в соответствии с предоставленным форматом
🥰 — Convert.ToString() обрабатывает только значения null
Please open Telegram to view this post
VIEW IN TELEGRAM
Senior C# Developer — до 400 000 ₽, Удалёнка.
Middle Full-stack разработчик (C#/TypeScript) — от 200 000 ₽, Удалёнка.
C#/.NET-разработчик — Удалёнка (Нижний Новгород).
Backend-разработчик (.NET) — Удалёнка.
Senior Developer — до 600 000 ₽, Удалёнка.
Бустер — Удалённо (в любом городе мира).
Please open Telegram to view this post
VIEW IN TELEGRAM
💻 Компактный гид по основам языка
Нашли для вас шпаргалку, которая охватывает все основные темы языка. Код можно скопировать и поиграться в своей среде разработки.
➡️ Поделитесь с младшими коллегами
🐸 Библиотека шарписта #буст
Нашли для вас шпаргалку, которая охватывает все основные темы языка. Код можно скопировать и поиграться в своей среде разработки.
Please open Telegram to view this post
VIEW IN TELEGRAM
✅ Грин-флаги в вакансиях: 10 признаков хорошего работодателя
Пока одни сосредоточены на том, как произвести впечатление на работодателя, опытные соискатели внимательно читают вакансии и ищут признаки того, что перед ними достойная компания.
В статье подробно о том, как распознать хорошего работодателя ещё до собеседования, просто внимательно вчитавшись в текст вакансии.
📎 Читать статью
🐸 Библиотека шарписта
Пока одни сосредоточены на том, как произвести впечатление на работодателя, опытные соискатели внимательно читают вакансии и ищут признаки того, что перед ними достойная компания.
В статье подробно о том, как распознать хорошего работодателя ещё до собеседования, просто внимательно вчитавшись в текст вакансии.
Please open Telegram to view this post
VIEW IN TELEGRAM
WeakReference
«отпустила» объектВ .NET слабые ссылки позволяют ссылаться на объект, не препятствуя сборщику мусора его удалить. Это полезно в кэшах, пулах объектов и других случаях, где важно избегать утечек памяти.
Но как проверить, что объект удаляется?
Можно использовать пример:
class MyObject
{
~MyObject()
{
Console.WriteLine("MyObject был удалён сборщиком мусора");
}
}
class Program
{
static void Main()
{
WeakReference weakRef = test();
GC.Collect();
GC.WaitForPendingFinalizers();
GC.Collect();
Console.WriteLine("После сборки мусора: " + (weakRef.IsAlive ? "Жив" : "Удалён"));
}
static WeakReference test() {
var obj = new MyObject();
WeakReference weakRef = new WeakReference(obj);
Console.WriteLine("До удаления ссылки: " + (weakRef.IsAlive ? "Жив" : "Удалён"));
return weakRef;
}
}
•
IsAlive
показывает, жив ли объект.•
GC.Collect()
+ GC.WaitForPendingFinalizers()
заставляют сборщик мусора немедленно освободить неиспользуемые объекты.• Деструктор
~MyObject()
позволяет наглядно убедиться, что объект удалён.Метод
IsAlive
может показывать, что объект жив даже после GC.Collect()
, если объект ещё не финализирован или находится в очереди на финализацию.Для надёжности можно использовать
TryGetTarget
вместо IsAlive
.Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
📋 Чек-лист по написанию LINQ запросов
Независимо от того, работаете ли вы с коллекциями, базами данных или XML, LINQ запросы требуют правильной структуры и оптимизации для достижения наилучших результатов.
В этом чек-листе собраны основные моменты, которые помогут вам писать чистые, читаемые и эффективные LINQ запросы.
✅ Понимание источника данных
Убедитесь, что данные поддерживают LINQ, например,
✅ Определение цели запроса
Чётко определите входные данные, что с ними будет в процессе и какие ожидаются данные на выходе.
✅ Синтаксис запроса
Перед написанием запросов стоит определить какой синтаксис будет использоваться.
• Синтаксис как метод:
• Запрос в синтаксисе:
✅ Оптимизация производительности
Используйте
✅ Отложенная и немедленная загрузка
Отложенная загрузка полезна, когда вам нужно выполнить запрос, но выполнение следует отложить до тех пор, пока это не потребуется.
Немедленная загрузка используется, когда вы хотите сразу получить результат выполнения запроса или когда данные нужно обработать немедленно.
✅ Агрегация и группировка
Используйте функции агрегации, такие как
✅ Сложные запросы
Работайте с несколькими коллекциями через операторы
✅ Использование
Упрощайте запросы с помощью промежуточных переменных:
✅ Обработка пустых коллекций
Используйте
✅ Производительность и асинхронность
Используйте асинхронные методы, такие как
🐸 Библиотека шарписта #буст
Независимо от того, работаете ли вы с коллекциями, базами данных или XML, LINQ запросы требуют правильной структуры и оптимизации для достижения наилучших результатов.
В этом чек-листе собраны основные моменты, которые помогут вам писать чистые, читаемые и эффективные LINQ запросы.
Убедитесь, что данные поддерживают LINQ, например,
IEnumerable<T>
или IQueryable<T>
.Чётко определите входные данные, что с ними будет в процессе и какие ожидаются данные на выходе.
Перед написанием запросов стоит определить какой синтаксис будет использоваться.
• Синтаксис как метод:
var result = collection.Where(x => x.Age > 30).OrderBy(x => x.Name).ToList();
• Запрос в синтаксисе:
var result = from x in collection
where x.Age > 30
orderby x.Name
select x;
Используйте
IQueryable<T>
для внешних источников данных (например, базы данных), чтобы запрос выполнялся на сервере.Отложенная загрузка полезна, когда вам нужно выполнить запрос, но выполнение следует отложить до тех пор, пока это не потребуется.
Немедленная загрузка используется, когда вы хотите сразу получить результат выполнения запроса или когда данные нужно обработать немедленно.
Используйте функции агрегации, такие как
Sum()
, Average()
, Max()
, и группировку через GroupBy()
.Работайте с несколькими коллекциями через операторы
join
, union
, intersect
и except
.var combined = collection1.Join(collection2,
c1 => c1.Id,
c2 => c2.Id,
(c1, c2) => new { c1.Name, c2.Price });
let
для промежуточных вычисленийУпрощайте запросы с помощью промежуточных переменных:
var result = from x in collection
let temp = x.Age * 2
where temp > 40
select new { x.Name, temp };
Используйте
DefaultIfEmpty()
для предотвращения ошибок при работе с пустыми коллекциями.Используйте асинхронные методы, такие как
ToListAsync()
, для работы с асинхронными источниками данных.Please open Telegram to view this post
VIEW IN TELEGRAM
🚨 Смешные новости про IT теперь в одном канале
Мы запустили @hahacker_news — наш новый юмористический IT-канал.
Туда будем постить лучшие шутки до 19го мая, которые вы присылали на конкурс.
👉 @hahacker_news — голосование уже идёт, переходите, читайте, угарайте и оставляйте реакции
Мы запустили @hahacker_news — наш новый юмористический IT-канал.
Туда будем постить лучшие шутки до 19го мая, которые вы присылали на конкурс.
👉 @hahacker_news — голосование уже идёт, переходите, читайте, угарайте и оставляйте реакции
Please open Telegram to view this post
VIEW IN TELEGRAM
💻 Быстрый CheatSheet от VisualStudio
Если вы хотите работать быстрее и эффективнее, изучение горячих клавиш — один из лучших способов. В любой момент в Visual Studio вы можете быстро перейти на официальный ресурс с подробным справочником.
Как это сделать
1. Перейдите в поиск — Ctrl + Q
2. Начните вводить «справочник>» или «keyboard» и перейдите по первой подсказке.
Там вы найдёте подсказки по навигации, редактированию, отладке и другим важным операциям.
🐸 Библиотека шарписта #буст
Если вы хотите работать быстрее и эффективнее, изучение горячих клавиш — один из лучших способов. В любой момент в Visual Studio вы можете быстро перейти на официальный ресурс с подробным справочником.
Как это сделать
1. Перейдите в поиск — Ctrl + Q
2. Начните вводить «справочник>» или «keyboard» и перейдите по первой подсказке.
Там вы найдёте подсказки по навигации, редактированию, отладке и другим важным операциям.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔄 Апдейт Visual Studio 2022
Microsoft представила Visual Studio 2022 версии 17.14, сделав акцент на интеграции искусственного интеллекта в процесс разработки.
Ключевым новшеством стала функция Agent Mode (в режиме предварительного просмотра), позволяющая разработчикам взаимодействовать с IDE на естественном языке для выполнения сложных задач, таких как исправление ошибок, генерация команд терминала и анализ ошибок выполнения.
В области отладки и диагностики добавлены возможности Live Preview и Hot Reload в режиме дизайна, новая отладка для .NET MAUI с использованием движка Mono, улучшенная отладка LINQ-выражений и выявление выделений нулевой длины массивов в .NET Allocation Tool.
Microsoft также объявила о переходе на ежемесячный цикл выпуска обновлений для Visual Studio 2022, начиная с этой версии.
➡️ Подробнее об обновлении
🐸 Библиотека шарписта #свежак
Microsoft представила Visual Studio 2022 версии 17.14, сделав акцент на интеграции искусственного интеллекта в процесс разработки.
Ключевым новшеством стала функция Agent Mode (в режиме предварительного просмотра), позволяющая разработчикам взаимодействовать с IDE на естественном языке для выполнения сложных задач, таких как исправление ошибок, генерация команд терминала и анализ ошибок выполнения.
В области отладки и диагностики добавлены возможности Live Preview и Hot Reload в режиме дизайна, новая отладка для .NET MAUI с использованием движка Mono, улучшенная отладка LINQ-выражений и выявление выделений нулевой длины массивов в .NET Allocation Tool.
Microsoft также объявила о переходе на ежемесячный цикл выпуска обновлений для Visual Studio 2022, начиная с этой версии.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🎮 Эмодзи клавиатура у сеньора
Вашему коллеге подсунули эмодзи клавиатуру вместо обыкновенной! Попробуйте расшифровать какой код он написал.
💬 Пишите свои догадки в комментариях👇
🐸 Библиотека шарписта #междусобойчик
Вашему коллеге подсунули эмодзи клавиатуру вместо обыкновенной! Попробуйте расшифровать какой код он написал.
💬 Пишите свои догадки в комментариях👇
Please open Telegram to view this post
VIEW IN TELEGRAM